<?php

/**
 * Controlardor de gestión de usuarios
 *
 */
class controlador_comerciales {

    /**
     * Método para ver el resumen del comercial
     */
    public function inicio_comercial() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('comercial')) {
            $obj_comercial = new Comercial();
            $num_clientes = $obj_comercial->obtener_numero_clientes($_SESSION['weokey_publicidad_usuario_id']);
            $num_anuncios = $obj_comercial->obtener_numero_anuncios($_SESSION['weokey_publicidad_usuario_id']);
            $params_clientes = $obj_comercial->get_clientes_by_comercial($_SESSION['weokey_publicidad_usuario_id'], 5);
            $obj_anuncio = new Anuncio();
            $params_anuncios = $obj_anuncio->get_anuncios_by_comercial($_SESSION['weokey_publicidad_usuario_id'], 5);
            require 'app/views/inicio_comerciales.php';
        } else {
            header('location:inicio');
        }
    }

    /**
     * Método para ver la vista de comerciales
     */
    public function ver_comercial() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_comercial = new Comercial();
            $obj_comercial->get_by_id($_GET['id']);

            $obj_anuncio = new Anuncio();
            $params_anuncios = $obj_anuncio->get_anuncios_by_comercial($_GET['id']);

            $template = 'template_administrador';
            require 'app/views/ver_comercial.php';
        } else if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('cliente')) {
            $obj_cliente = new Cliente();
            $comercial = $obj_cliente->get_comercial_by_cliente($_SESSION['weokey_publicidad_usuario_id']);
            foreach ($comercial as $fila) {
                $obj_comercial = new Comercial();
                $obj_comercial->get_by_id($fila['comercial']);
            }



            $template = 'template_cliente';
            require 'app/views/ver_comercial.php';
        } else {
            header('location:inicio');
        }
    }

    /**
     * Método para ver la listar todos los comerciales
     */
    public function listado_comerciales() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_comercial = new Comercial();
            $params_comerciales = $obj_comercial->obtener_todos_comerciales();
            $template = "template_administrador";
            require 'app/views/listado_comerciales.php';
        } else {
            header('location:inicio');
        }
    }

    /**
     * Método para ver la listar todos los comerciales inactivos
     */
    public function listado_comerciales_inactivos() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_comercial = new Comercial();
            $params_comerciales = $obj_comercial->obtener_todos_comerciales_inactivos();
            $template = "template_administrador";
            require 'app/views/listado_comerciales_inactivos.php';
        } else {
            header('location:inicio');
        }
    }

    /**
     * Formulario de registro y regitrar al usuario en bd
     */
    public function registrar() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] != md5('administrador')) {
            header('location:inicio');
        } else {
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                $obj_comercial = new Comercial();

                //Limpiamos los campos y los guardamos en variables
                $usuario = test_input($_POST['usuario']);
                $nombre = test_input($_POST['nombre']);
                $apellidos = test_input($_POST['apellidos']);
                $documento_identidad = test_input($_POST['documento_identidad']);
                $direccion = test_input($_POST['direccion']);
                $localidad = test_input($_POST['localidad']);
                $provincia = test_input($_POST['provincia']);
                $pais = test_input($_POST['pais']);
                $telefono = test_input($_POST['telefono']);
                $email = test_input($_POST['email']);
                $cuenta_bancaria = test_input($_POST['cuenta_bancaria']);

                //Comprobamos que se han introducido todos los datos obligatorios
                $obj_administrador = new Administrador();
                $obj_cliente = new Cliente();

                if ($obj_comercial->existe_comercial_email($email) || $obj_administrador->existe_administrador_email($email) || $obj_cliente->existe_cliente_email($email)) {
                    $_SESSION['publicidad_msj'] = "Ya existe un usuario con ese email";
                    header('location:registro_comercial');
                } else if ($obj_comercial->existe_nombre_usuario($usuario) || $obj_administrador->existe_nombre_usuario($usuario) || $obj_cliente->existe_nombre_usuario($usuario)) {
                    $_SESSION['publicidad_msj'] = "Ya existe un usuario con ese nombre";
                    header('location:registro_comercial');
                } else {
                    //Genera una contraseña aleatoria a partir del datetime de hoy
                    $password_gen = substr(md5(time()), 0, 8);
                    $password = md5($password_gen);
                    
                    $array_datos = array(
                        "usuario" => $usuario,
                        "nombre" => $nombre,
                        "apellidos" => $apellidos,
                        "documento_identidad" => $documento_identidad,
                        "direccion" => $direccion,
                        "localidad" => $localidad,
                        "provincia" => $provincia,
                        "pais" => $pais,
                        "telefono" => $telefono,
                        "email" => $email,
                        "cuenta_bancaria" => $cuenta_bancaria,
                        "password" => $password
                    );

                    $obj_comercial->set($array_datos);
                    $ultimo_id = $obj_comercial->get_last_id();
                    //envia mail con la contraseña
                    send_mail_registro($email, $password_gen, $usuario);

                    $_SESSION['publicidad_msj'] = 'Comercial registrado correctamente.';
                    header("location:ver_comercial/$ultimo_id");
                }
            } else {
                //$_SESSION['publicidad_msj'] = 'No se ha podido registrar al comercial.';
                $template = 'template_administrador';
                require 'app/views/registro_comercial.php';
            }
        }
    }

    /**
     * Formulario para editar comercial
     */
    public function editar() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                $obj_comercial = new Comercial();

                //Limpiamos los campos y los guardamos en variables
                $usuario = test_input($_POST['usuario']);
                $nombre = test_input($_POST['nombre']);
                $apellidos = $_POST['apellidos'];
                $documento_identidad = $_POST['documento_identidad'];
                $direccion = test_input($_POST['direccion']);
                $localidad = test_input($_POST['localidad']);
                $provincia = test_input($_POST['provincia']);
                $pais = test_input($_POST['pais']);
                $telefono = test_input($_POST['telefono']);
                $email = test_input($_POST['email']);
                $cuenta_bancaria = test_input($_POST['cuenta_bancaria']);

                if (isset($_POST['activo'])) {
                    $activo = 1;
                } else {
                    $activo = 0;
                }

                $array_datos = array(
                    "usuario" => $usuario,
                    "nombre" => $nombre,
                    "apellidos" => $apellidos,
                    "documento_identidad" => $documento_identidad,
                    "direccion" => $direccion,
                    "localidad" => $localidad,
                    "provincia" => $provincia,
                    "pais" => $pais,
                    "telefono" => $telefono,
                    "email" => $email,
                    "cuenta_bancaria" => $cuenta_bancaria,
                    "activo" => $activo
                );

                $obj_comercial->edit($array_datos);
                $id = $_GET['id'];
                $_SESSION['publicidad_msj'] = 'Comercial modificado correctamente.';
                header("location: ../ver_comercial/$id");
            } else {
                $obj_comercial = new Comercial();
                if (!$obj_comercial->get_by_id($_GET['id'])) {
                    header('location:../listado_comerciales');
                } else {
                    $template = 'template_administrador';
                    require 'app/views/modificar_comercial.php';
                }
            }
        } else {
            header('location:../inicio');
        }
    }

    /**
     * Método para desactivar un comercial
     */
    public function desactivar() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_comercial = new Comercial();
            if (!$obj_comercial->desactivar_comercial($_GET['id'])) {
                header("location:../listado_comerciales");
            }
            $_SESSION['publicidad_msj'] = 'Comercial desactivado correctamente.';
            header("location:../listado_comerciales");
        } else {
            header('location:inicio');
        }
    }

    /**
     * Método para activar un comercial
     */
    public function activar() {
        if ($_SESSION['weokey_publicidad_tipo_usuario'] == md5('administrador')) {
            $obj_comercial = new Comercial();
            if (!$obj_comercial->activar_comercial($_GET['id'])) {
                header("location:../comerciales_inactivos");
            }
            $_SESSION['publicidad_msj'] = 'Comercial activado correctamente.';
            header("location:../comerciales_inactivos");
        } else {
            header('location:inicio');
        }
    }

    /**
     * Función que comprueba si existe un usuario con el email que recibo por post desde ajax
     * @return devuelve con echo si existe o no el un usuario
     */
    public function comprobacion_email_existente() {
        $obj_usuario = new Usuario();

        if ($obj_usuario->existe_usuario_email($_POST['email'])) {
            echo 'existe';
        } else {
            echo 'no existe';
        }
    }

    /**
     * Función que comprueba si existe un usuario con el nombre de usuario que recibo por post desde ajax
     * @return devuelve con echo si existe o no el un usuario
     */
    public function comprobacion_nombre_usuario_existente() {
        $obj_usuario = new Usuario();

        if ($obj_usuario->existe_nombre_usuario($_POST['usuario'])) {
            echo 'existe';
        } else {
            echo 'no existe';
        }
    }

    /**
     * Cambiar clave del comercial
     */
    public function cambiar_clave() {
        $password = $_POST['password'];
        $confirm_password = $_POST['confirm_password'];

        if ($password == $confirm_password) {
            $obj_comercial = new Comercial();
            $obj_comercial->cambiar_clave($_SESSION['weokey_publicidad_usuario_id'], $password);
            $_SESSION['publicidad_msj'] = 'Contraseña cambiada correctamente.';
            header('location:perfil');
        } else {
            //si la contraseña no es igual
            $_SESSION['publicidad_msj'] = 'La contraseña no coincide.';
            header('location:perfil');
        }
    }

    /**
     * Formulario de logins
     */
    //FUNCION DE LOGIN EN CONTROLADOR PRINCIPAL
    /*
      public function login() {
      $obj_usuario = new Comercial();
      if ($obj_usuario->comprobar_login_comerciales($_POST['email'], $_POST['password'])) {
      //Creamos la variable de sesión del usuario
      $_SESSION['weokey_publicidad_usuario'] = md5($_POST['email']);
      header('location:ver_comercial');
      } else {
      $obj_usuario = new Cliente();
      if ($obj_usuario->comprobar_login_clientes($_POST['email'], $_POST['password'])) {
      //variable de sesion
      $_SESSION['weokey_publicidad_usuario'] = md5($_POST['email']);
      header('location:ver_cliente');
      } else {
      $obj_usuario = new Administrador();
      if ($obj_usuario->comprobar_login_administrador($_POST['email'], $_POST['password'])) {
      //Creamos la variable de sesión del usuario
      $_SESSION['weokey_publicidad_usuario'] = md5($_POST['email']);
      header('location:ver_administrador');
      } else {
      header('location:inicio_login/error:1');
      die();
      }
      }
      }
      }

     */

    /**
     * Formulario de login
     */
    public function inicio_login() {
        require 'app/views/inicio_login.php';
    }

}

?>
